package com.transaction.demo.trade.vo.req;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 描述：支付记录表
 * 作者：马庆智
 * 日期：2023/04/27 17:22:10
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("支付记录表请求listVo")
public class TradePaymentRecordListReqVo implements Serializable {

	@ApiModelProperty("当前页")
	@NotNull(message = "current当前页不能为空")
	@Min(value = 1, message = "current当前页不能小于1")
	private int current;

	@ApiModelProperty("每页的数量")
	@NotNull(message = "pageSize每页的数量不能为空")
	private int pageSize;

	@ApiModelProperty("状态(参考枚举:paymentrecordstatusenum)")
	//@NotBlank(message = "status状态(参考枚举:paymentrecordstatusenum)不能为空")
	private String status;

	@ApiModelProperty("修改者")
	//@NotBlank(message = "editor修改者不能为空")
	private String editor;

	@ApiModelProperty("商品名称")
	//@NotBlank(message = "productName商品名称不能为空")
	private String productName;

	@ApiModelProperty("商户订单号")
	//@NotBlank(message = "merchantOrderNo商户订单号不能为空")
	private String merchantOrderNo;

	@ApiModelProperty("支付流水号")
	//@NotBlank(message = "trxNo支付流水号不能为空")
	private String trxNo;

	@ApiModelProperty("银行订单号")
	//@NotBlank(message = "bankOrderNo银行订单号不能为空")
	private String bankOrderNo;

	@ApiModelProperty("银行流水号")
	//@NotBlank(message = "bankTrxNo银行流水号不能为空")
	private String bankTrxNo;

	@ApiModelProperty("商家名称")
	//@NotBlank(message = "merchantName商家名称不能为空")
	private String merchantName;

	@ApiModelProperty("商家编号")
	//@NotBlank(message = "merchantNo商家编号不能为空")
	private String merchantNo;

	@ApiModelProperty("付款人名称")
	//@NotBlank(message = "payerName付款人名称不能为空")
	private String payerName;

	@ApiModelProperty("付款方账户类型(参考账户类型枚举:accounttypeenum)")
	//@NotBlank(message = "payerAccountType付款方账户类型(参考账户类型枚举:accounttypeenum)不能为空")
	private String payerAccountType;

	@ApiModelProperty("收款人名称")
	//@NotBlank(message = "receiverName收款人名称不能为空")
	private String receiverName;

	@ApiModelProperty("收款方支付金额")
	//@NotBlank(message = "receiverPayAmount收款方支付金额不能为空")
	private String receiverPayAmount;

	@ApiModelProperty("收款方手续费")
	//@NotBlank(message = "receiverFee收款方手续费不能为空")
	private String receiverFee;

	@ApiModelProperty("收款方账户类型(参考账户类型枚举:accounttypeenum)")
	//@NotBlank(message = "receiverAccountType收款方账户类型(参考账户类型枚举:accounttypeenum)不能为空")
	private String receiverAccountType;

	@ApiModelProperty("支付方式名称")
	//@NotBlank(message = "payWayName支付方式名称不能为空")
	private String payWayName;

	@ApiModelProperty("是否退款(100:是,101:否,默认值为:101)")
	//@NotBlank(message = "isRefund是否退款(100:是,101:否,默认值为:101)不能为空")
	private String isRefund;

	@ApiModelProperty("退款次数(默认值为:0)")
	//@NotBlank(message = "refundTimes退款次数(默认值为:0)不能为空")
	private int refundTimes;

	@ApiModelProperty("交易业务类型  ：消费、充值等")
	//@NotBlank(message = "trxType交易业务类型  ：消费、充值等不能为空")
	private String trxType;

	@ApiModelProperty("支付类型编号")
	//@NotBlank(message = "payTypeCode支付类型编号不能为空")
	private String payTypeCode;

	@ApiModelProperty("支付类型名称")
	//@NotBlank(message = "payTypeName支付类型名称不能为空")
	private String payTypeName;

	@ApiModelProperty("资金流入类型")
	//@NotBlank(message = "fundIntoType资金流入类型不能为空")
	private String fundIntoType;

}